# Plano Mestre de Expansão de Indicadores (Fase 4 - The 150+ Indicators)

Este documento define a estratégia para implementar o restante dos 150+ indicadores (Trend, Momentum, Volatility, Volume, Padrões), visando manter alta qualidade, testabilidade e sem sobrecarregar a arquitetura atual. 

## Abordagem de Implementação Faseada

Como temos uma estimativa de centenas de horas para a conclusão, a adoção de um modelo ágil de **Sprints fatiados** é crítica. A priorização clássica dita que comecemos pelos indicadores essenciais mais comuns na indústria (*TradingView Top Tier*).

Dessa forma dividi os indicadores em blocos lógicos menores (aprox. 5 a 10 indicadores por batch).

### Sprint 1: O Arsenal Completo de Médias Móveis (Trend MA)
**Foco:** Estabelecer todas as variações diretas da SMA/EMA que já possuímos, utilizando o mesmo esqueleto arquitetural O(N) Batch / O(1) Stream de Performance.
- Weighted Moving Average (WMA)
- Smoothed Moving Average (SMMA)
- Double Exponential Moving Average (DEMA)
- Triple Exponential Moving Average (TEMA)
- Hull Moving Average (HMA)
- Volume Weighted Average Price (VWAP - Refinamento se necessário)

### Sprint 2: Momentum & Trend Clássico (Top Tier)
**Foco:** Trazer indicadores que dependem enormemente de `High`, `Low` e variação estocástica, abrindo espaço para `Panels` complexos.
- Commodity Channel Index (CCI)
- Williams %R
- Momentum / Rate of Change (ROC)
- Parabolic SAR (Overlay)
- Supertrend (Overlay)

### Sprint 3: Bandas, Volatilidade e Canais
**Foco:** Ferramentas de suporte e resistência dinâmico baseados em desvio ou ATR.
- Donchian Channel
- Keltner Channel
- Price Channel
- KDJ (Stochastic Asian)

### Sprint 4+: O Restante (A planejar)
Após a validação da arquitetura para comportar os primeiros ~20 indicadores, passaremos a:
- Pivot Points (Standard, Fibonacci, Camarilla)
- Advanced Volume (OBV, MFI)
- Osciladores complexos (Awesome Oscillator, Fisher Transform, Ichimoku Cloud).

---

## Estratégia de Arquitetura Padrão

Para cada indicador da lista supracitada, o pipeline rigoroso será mantido:
1. **Freezed Models:** `IndicatorValue` e `IndicatorConfig` (com conversão segura de Cores `.toARGB32()`).
2. **Calculator:** Função estrita em `O(N)` com capacidade incremental.
3. **Provider:** Isolamento de state via Riverpod e Cache.
4. **Painter:** Rotinas de viewport culling otimizadas e renderização em Canvas (`Overlay` ou `Panel`).
5. **Unit & Golden Tests:** Pelo menos 1 teste cobrindo a verificação matemática dos arrays.

> [!CAUTION]
> Ao adicionarmos dezenas de indicadores, a interface de seleção no `ChartWidget` (UI de configurações) deverá em algum momento passar por uma reformulação. O exemplo continuará usando Checkboxes/Dropdowns por enquanto, mas logo a tela ficará superlotada.

## User Review Required
Por favor, analise a proposta do **Sprint 1 e Sprint 2**.
1. **Prioridade:** Você concorda em começarmos pelo **Sprint 1 (Todas as Médias Móveis)** ou gostaria de iniciar atacando os de alto valor como **Supertrend e Parabolic SAR** que vendem muito visualmente?
2. **Tamanho do Lote:** Está de bom tamanho implementarmos em lotes de 5-6 indicadores por vez para garantirmos estabilidade e revisão cautelosa de lints e performance?

Aguardando seu comando!
